/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.awt.Menu;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;

public class Principal {

    Seccion sec = null;
    Profesor profe = new Profesor();
    //Estudiante est;
    int opc;
    String nombre, apellido, cedula, tituloacademico, estado;
    BufferedReader lector = new BufferedReader(new InputStreamReader(System.in));

    public void asignarSeccion() throws IOException {
         System.out.println("\tNumero seccion\t");
        try {
            String numero = lector.readLine();
        sec = new Seccion(numero);
        } catch (NumberFormatException e) {
            System.out.println("numero invalido");
        }
    }

    void AsignarProfesor() throws IOException {

        System.out.println("\tDatos del profesor a asignar:\t");
        System.out.println("\tTitulo Academico:\t");
        try {
            tituloacademico = lector.readLine();



            profe.setTituloacademico(tituloacademico);

            System.out.println("\tApellido del profesor:\t");
            apellido = lector.readLine();
            profe.setApellido(apellido);

            System.out.println("\tNombre del profesor:\t");
            nombre = lector.readLine();
            profe.setNombre(nombre);

            System.out.println("\tCedula del profesor:\t");
            cedula = lector.readLine();
            profe.setCedula(cedula);

            System.out.println("Titulo Academico:" + profe.getTituloacademico() + "Apellido:" + profe.getApellido() + "Nombre:"
                    + profe.getNombre() + "Cedula:" + profe.getCedula());

        } catch (NumberFormatException e) {
            System.out.println("se ha producido un error, intente de nuevo");
        }

    }

    void InscribirEstudiante() throws IOException {
        int resp;

        do {
            Estudiante est = new Estudiante();
            try {
                System.out.println("\tDatos del Estudiante:\t");
                System.out.println("\tApellido del Estudiante:\t");
                apellido = lector.readLine();
                est.setApellido(apellido);

                System.out.println("\tNombre del Estudiante:\t");
                nombre = lector.readLine();
                est.setNombre(nombre);

                System.out.println("\tCedula del Estudiante:\t");
                cedula = lector.readLine();
                est.setCedula(cedula);

                sec.agregarEstudiante(est);

                System.out.println("Desea asignar otro estudiante? 0:(SI)-1:(NO):");


            } catch (NumberFormatException e) {
            System.out.println("se ha producido un error, intente de nuevo");
        }

            resp = Integer.parseInt(lector.readLine());
        } while (resp == 0);

    }

    void AplicarEvaluacion() {
        System.out.println("Aplicar evaluacion:");
        sec.aplicarEvaluacion();
//
//        if (sec.getsize() > 0) {
//            for (int i = 0; i < est.getsize(); i++) {
//                est.elementAt(i).presentarEvaluacion();
//            }
//        }
//
//        for (int i = 0; i < getsize(); i++) {
//            profe.elementAt(i).EvaluarEstudiante();
//        }
//        profe.elementAt(i).AsignarEstado();
    }

    void MostrarPromedioSeccion() {
        System.out.println("Promedio de notas de la Seccion:" + sec.getPromedioSeccion());
    }

    public void ListaAprobados() throws IOException {

        System.out.println("Listado de estudiantes aprobados:");
        sec.ListadoAprobado();
    }

     public void ListaReprobados() throws IOException {

        System.out.println("Listado de estudiantes aprobados:");
        sec.ListadoReprobado();
    }

    public void ListaOrdenCedula() throws IOException {
        System.out.println("Listado de estudiantes ordenados por Cedula:");
        sec.ordenarPorCedula();
    }

    public void ListaNotaFinal() throws IOException {
        System.out.println("Listado de estudiantes ordenados por Nota Final:");
        sec.ordenarPorNotaFinal();
    }

    public void BuscarEstPorCedula() throws IOException {
        int resp, pos;

        System.out.println("\tCedula del Estudiante:\t");
        cedula = lector.readLine();

        pos = sec.buscarEstudiante(cedula);
        if (pos < 0) {
            System.out.println("\tEL ESTUDIANTE NO ESTA REGISTRADO\t");
        } else {
            System.out.println("Nombre:" + sec.getEstudiante(pos).getNombre() + "Apellido:" + sec.getEstudiante(pos).getApellido() + "Cedula:" + sec.getEstudiante(pos).getCedula());
        }
    }

    public void RetirarEstudiante() throws IOException {

        System.out.println("\tCedula del Estudiante:\t");
        cedula = lector.readLine();
        int pos = sec.buscarEstudiante(cedula);
            if (pos < 0) {
                System.out.println("\tEL ESTUDIANTE NO PUEDE SER RETIRADO PORQUE NO SE ENCUENTRA REGISTRADO!\t");

            } else {
                sec.retirarEstudiante(cedula);
            }
        }


    int Menu() throws IOException {
        int opc;

        System.out.println("Menu de Opciones:");
        System.out.println("(0)-Crear Seccion:");
        System.out.println("(1)-Asignar Profesor:");
        System.out.println("(2)-Inscribir Estudiante:");
        System.out.println("(3)-Retirar Estudiante:");
        System.out.println("(4)-Buscar Estudiante:");
        System.out.println("(5)-Aplicar Evaluacion:");
        System.out.println("(6)-Listado de Estudiantes ordenados por Cedula:");
        System.out.println("(7)-Listado de Estudiantes ordenados por Nota Final:");
        System.out.println("(8)-Listado de Estudiantes Aprobados:");
        System.out.println("(9)-Listado de Estudiantes Aplazados:");
        System.out.println("(10)-Promedio de Notas de la Seccion:");
        System.out.println("(11)-Salir!");
        opc = Integer.parseInt(lector.readLine());
        return opc;

    }





}
